<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%>
<%@ attribute name="name" type="java.lang.String" required="true" description="隐藏域名称（ID）"%>
<%@ attribute name="value" type="java.lang.String" required="true" description="隐藏域值（ID）"%>
<%@ attribute name="labelName" type="java.lang.String" required="true" description="输入框名称（Name）"%>
<%@ attribute name="labelValue" type="java.lang.String" required="true" description="输入框值（Name）"%>
<%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%>
<%@ attribute name="url" type="java.lang.String" required="true" description="树结构数据地址"%>
<%@ attribute name="checked" type="java.lang.Boolean" required="false" description="是否显示复选框，如果不需要返回父节点，请设置notAllowSelectParent为true"%>
<%@ attribute name="extId" type="java.lang.String" required="false" description="排除掉的编号（不能选择的编号）"%>
<%@ attribute name="isAll" type="java.lang.Boolean" required="false" description="是否列出全部数据，设置true则不进行数据权限过滤（目前仅对Office有效）"%>
<%@ attribute name="notAllowSelectRoot" type="java.lang.Boolean" required="false" description="不允许选择根节点"%>
<%@ attribute name="notAllowSelectParent" type="java.lang.Boolean" required="false" description="不允许选择父节点"%>
<%@ attribute name="module" type="java.lang.String" required="false" description="过滤栏目模型（只显示指定模型，仅针对CMS的Category树）"%>
<%@ attribute name="selectScopeModule" type="java.lang.Boolean" required="false" description="选择范围内的模型（控制不能选择公共模型，不能选择本栏目外的模型）（仅针对CMS的Category树）"%>
<%@ attribute name="allowClear" type="java.lang.Boolean" required="false" description="是否允许清除"%>
<%@ attribute name="allowInput" type="java.lang.Boolean" required="false" description="文本框可填写"%>
<%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%>
<%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%>
<%@ attribute name="smallBtn" type="java.lang.Boolean" required="false" description="缩小按钮显示"%>
<%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮"%>
<%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择，如果限制，设置为disabled"%>
<%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%>

<script src="${ctxStatic}/js/plugins/layer-new/layer.js"></script>
<div class="input-append">
	<div class="input-group">
		<input id="${id}Id" name="${name}" class="${cssClass}" type="hidden" value="${value}"/>
		<input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'} type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
			   class="${cssClass}" style="${cssStyle}"/><a id="${id}Button" href="javascript:" class="input-group-btn ${disabled} ${hideBtn ? 'hide' : ''}" style="${smallBtn?'padding:4px 2px;':''}"> <button type="button" class="btn btn-primary"><i class="fa fa-search"></i> 搜索
                                        </button></a>
	</div>

</div>
<script type="text/javascript">
    function openTree(){
        var that = this;
        //多窗口模式，层叠置顶
        var select =  $("#${id}Id").val();
        console.log(select)
        var url = '${ctx}/tag/treeselect?url=${url}&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}&selectIds='+select;
        layer.open({
            type: 2 //
            ,title: '选择${title}'
            ,area: ['300px', '420px']
            ,shade: 0
            ,maxmin: true
      /*      ,offset: [ //为了演示，随机坐标
                Math.random()*($(window).height()-300)
                ,Math.random()*($(window).width()-390)
            ]*/
            ,content: url
            ,btn: ['确认', '关闭'] //
            ,yes: function(i,h){
                var tree = h.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents();
                var ids = [], names = [], nodes = [];
                if ("${checked}" == "true"){
                    nodes = tree.getCheckedNodes(true);
                }else{
                    nodes = tree.getSelectedNodes();
                }
                for(var i=0; i<nodes.length; i++) {//<c:if test="${checked && notAllowSelectParent}">
                    if (nodes[i].isParent){
                        continue; // 如果为复选框选择，则过滤掉父节点
                    }//</c:if><c:if test="${notAllowSelectRoot}">
                    if (nodes[i].level == 0){
                        layer.msg("不能选择根节点（"+nodes[i].name+"）请重新选择。");
                        return false;
                    }//</c:if><c:if test="${notAllowSelectParent}">
                    if (nodes[i].isParent){
                        layer.msg("不能选择父节点（"+nodes[i].name+"）请重新选择。");
                        return false;
                    }//</c:if><c:if test="${not empty module && selectScopeModule}">
                    if (nodes[i].module == ""){
                        layer.msg("不能选择公共模型（"+nodes[i].name+"）请重新选择。");
                        return false;
                    }else if (nodes[i].module != "${module}"){
                        layer.msg("不能选择当前栏目以外的栏目模型，请重新选择。");
                        return false;
                    }//</c:if>
                    ids.push(nodes[i].id);
                    names.push(nodes[i].name);//<c:if test="${!checked}">
                    break; // 如果为非复选框选择，则返回第一个选择  </c:if>
                }
                $("#${id}Id").val(ids.join(",").replace(/u_/ig,""));
                $("#${id}Name").val(names.join(","));
                layer.closeAll();
            }
            ,btn2: function(){
                <c:if test="${allowClear}">
                    $("#${id}Id").val("");
                    $("#${id}Name").val("");
                </c:if>
                if(typeof ${id}TreeselectCallBack == 'function'){
                    ${id}TreeselectCallBack(v, h, f);
                }
                layer.closeAll();
            }
            ,zIndex: layer.zIndex //重点1
            ,success: function(layero){
                //console.log("zzzzzz")
            }
        });
    }



	$("#${id}Button, #${id}Name").click(function(){
		// 是否限制选择，如果限制，设置为disabled
		if ($("#${id}Button").hasClass("disabled")){
			return true;
		}
        openTree();
		// 正常打开
		/*$.jBox.open("iframe:${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}", "选择${title}", 300, 415, {
			ajaxData:{selectIds: $("#${id}Id").val()},buttons:{"确定":"ok", ${allowClear?"\"清除\":\"clear\", ":""}"关闭":true}, submit:function(v, h, f){
				if (v=="ok"){
					var tree = h.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents();
					var ids = [], names = [], nodes = [];
					if ("${checked}" == "true"){
						nodes = tree.getCheckedNodes(true);
					}else{
						nodes = tree.getSelectedNodes();
					}
					for(var i=0; i<nodes.length; i++) {//<c:if test="${checked && notAllowSelectParent}">
						if (nodes[i].isParent){
							continue; // 如果为复选框选择，则过滤掉父节点
						}//</c:if><c:if test="${notAllowSelectRoot}">
						if (nodes[i].level == 0){
							top.$.jBox.tip("不能选择根节点（"+nodes[i].name+"）请重新选择。");
							return false;
						}//</c:if><c:if test="${notAllowSelectParent}">
						if (nodes[i].isParent){
							top.$.jBox.tip("不能选择父节点（"+nodes[i].name+"）请重新选择。");
							return false;
						}//</c:if><c:if test="${not empty module && selectScopeModule}">
						if (nodes[i].module == ""){
							top.$.jBox.tip("不能选择公共模型（"+nodes[i].name+"）请重新选择。");
							return false;
						}else if (nodes[i].module != "${module}"){
							top.$.jBox.tip("不能选择当前栏目以外的栏目模型，请重新选择。");
							return false;
						}//</c:if>
						ids.push(nodes[i].id);
						names.push(nodes[i].name);//<c:if test="${!checked}">
						break; // 如果为非复选框选择，则返回第一个选择  </c:if>
					}
					$("#${id}Id").val(ids.join(",").replace(/u_/ig,""));
					$("#${id}Name").val(names.join(","));
				}//<c:if test="${allowClear}">
				else if (v=="clear"){
					$("#${id}Id").val("");
					$("#${id}Name").val("");
                }//</c:if>
				if(typeof ${id}TreeselectCallBack == 'function'){
					${id}TreeselectCallBack(v, h, f);
				}
			}, loaded:function(h){
				$(".jbox-content", top.document).css("overflow-y","hidden");
			}
		});*/
	});
</script>